summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmeer J <52414509+ameerj@users.noreply.github.com>2023-08-10 00:34:57 +0200
committerAmeer J <52414509+ameerj@users.noreply.github.com>2023-08-10 00:34:57 +0200
commit71857e889e3403621d78a2fceaf8265b1113f89f (patch)
tree74f1037701037acb7f141ce6034102546da2680a
parentGetUnquantizedWeightVector (diff)
downloadyuzu-71857e889e3403621d78a2fceaf8265b1113f89f.tar
yuzu-71857e889e3403621d78a2fceaf8265b1113f89f.tar.gz
yuzu-71857e889e3403621d78a2fceaf8265b1113f89f.tar.bz2
yuzu-71857e889e3403621d78a2fceaf8265b1113f89f.tar.lz
yuzu-71857e889e3403621d78a2fceaf8265b1113f89f.tar.xz
yuzu-71857e889e3403621d78a2fceaf8265b1113f89f.tar.zst
yuzu-71857e889e3403621d78a2fceaf8265b1113f89f.zip
-rw-r--r--src/video_core/host_shaders/astc_decoder.comp19
1 files changed, 5 insertions, 14 deletions
diff --git a/src/video_core/host_shaders/astc_decoder.comp b/src/video_core/host_shaders/astc_decoder.comp
index 4014d4bfe..70f147d80 100644
--- a/src/video_core/host_shaders/astc_decoder.comp
+++ b/src/video_core/host_shaders/astc_decoder.comp
@@ -77,7 +77,7 @@ int color_bitsread = 0;
#define DIVCEIL(number, divisor) (number + divisor - 1) / divisor
#define ARRAY_NUM_ELEMENTS 144
#define VECTOR_ARRAY_SIZE DIVCEIL(ARRAY_NUM_ELEMENTS * 2, 4)
-uvec4 result_vector[VECTOR_ARRAY_SIZE];
+uint result_vector[ARRAY_NUM_ELEMENTS * 2];
int result_index = 0;
uint result_vector_max_index;
@@ -122,9 +122,7 @@ void ResultEmplaceBack(EncodingData val) {
result_limit_reached = true;
return;
}
- const uint array_index = result_index / 4;
- const uint vector_index = result_index % 4;
- result_vector[array_index][vector_index] = val.data;
+ result_vector[result_index] = val.data;
++result_index;
}
@@ -309,10 +307,7 @@ uint StreamColorBits(uint num_bits) {
}
EncodingData GetEncodingFromVector(uint index) {
- const uint array_index = index / 4;
- const uint vector_index = index % 4;
-
- const uint data = result_vector[array_index][vector_index];
+ const uint data = result_vector[index];
return EncodingData(data);
}
@@ -809,18 +804,14 @@ void UnquantizeTexelWeights(uvec2 size, bool is_dual_plane) {
const uint area = size.x * size.y;
const uint loop_count = min(result_index, area * num_planes);
for (uint itr = 0; itr < loop_count; ++itr) {
- const uint array_index = itr / 4;
- const uint vector_index = itr % 4;
- result_vector[array_index][vector_index] =
+ result_vector[itr] =
UnquantizeTexelWeight(GetEncodingFromVector(itr));
}
}
uint GetUnquantizedTexelWieght(uint offset_base, uint plane, bool is_dual_plane) {
const uint offset = is_dual_plane ? 2 * offset_base + plane : offset_base;
- const uint array_index = offset / 4;
- const uint vector_index = offset % 4;
- return result_vector[array_index][vector_index];
+ return result_vector[offset];
}
uvec4 GetUnquantizedWeightVector(uint t, uint s, uvec2 size, uint plane_index, bool is_dual_plane) {